/*
 * HuevoFisica.cpp
 *
 *  Created on: Nov 1, 2013
 *      Author: Hernan
 */

#include "HuevoFisica.h"
#include <iostream>

HuevoFisica::HuevoFisica(b2World* world, float x, float y, float ancho, float alto, float angulo, string tipo) : EntidadFisica(tipo) {
	this->estaRoto = false;
	this->definicionCuerpoFisico->position.Set(x, y);
	this->definicionCuerpoFisico->angle = angulo;
	this->definicionCuerpoFisico->type = b2_dynamicBody;
	this->cuerpoFisico = world->CreateBody(definicionCuerpoFisico);

	b2PolygonShape hexagono;
	b2Vec2 vec[6];
	vec[0] = b2Vec2(-ancho/2, alto/4);
	vec[1] = b2Vec2(-ancho/2, 0);
	vec[2] = b2Vec2(0,-alto/2);
	vec[3] = b2Vec2(ancho/2, 0);
	vec[4] = b2Vec2(ancho/2, alto/4);
	vec[5] = b2Vec2(0, alto/2);

	hexagono.Set(vec,6);

	this->fixture = new b2FixtureDef();
	this->fixture->shape = &hexagono;
	this->fixture->density = 1.0f;
	this->cuerpoFisico->CreateFixture(this->fixture);



	/* guardo info del elemento */

	this->guardarInformacionDeEntidad();
	this->alto = alto;
	this->ancho = ancho;


}

bool HuevoFisica::getEstadoHuevo(){
	return this->estaRoto;
}



void HuevoFisica::cambiarEstadoDelHuevo(){
	if (!this->estaRoto){
		this->estaRoto= true;
		this->cuerpoFisico->GetFixtureList()->SetDensity(3.5f);
	}

	/*float x = this->cuerpoFisico->GetPosition().x;
	float y = this->cuerpoFisico->GetPosition().y;

	this->definicionCuerpoFisico->position.Set(x , y);
	this->definicionCuerpoFisico->angle = 0;
	this->definicionCuerpoFisico->type = b2_staticBody;

	this->cuerpoFisico->GetWorld()->DestroyBody(this->cuerpoFisico);

	this->cuerpoFisico = this->cuerpoFisico->GetWorld()->CreateBody(definicionCuerpoFisico);

	b2PolygonShape hexagono;
	b2Vec2 vec[4];
	vec[0] = b2Vec2(-0.5f, 0.5f);
	vec[1] = b2Vec2(-0.5f, -0.5f);
	vec[2] = b2Vec2(0.5f, -0.5f);
	vec[3] = b2Vec2(0.5f, 0.5f);

	hexagono.Set(vec,4);

	this->fixture = new b2FixtureDef();
	this->fixture->shape = &hexagono;
	this->fixture->density = 0.1f;
	this->cuerpoFisico->CreateFixture(this->*/


}

HuevoFisica::~HuevoFisica() {
	// TODO Auto-generated destructor stub
}

